Cylinder event based spark

ABSTRACT

A method to deliver spark during a start for an internal combustion engine is described. The method provides individual cylinder spark angle control based on the number of fueled cylinder events. The method offers improved engine emissions while maintaining engine speed run-up performance.

FIELD OF INVENTION

The present invention relates to a method for controlling an internalcombustion engine and more particularly to a method for adjusting sparkbased on the number of fueled cylinders during a start.

BACKGROUND OF THE INVENTION

Engine starting control has a significant impact on engine emissions andengine speed run-up. Spark placement, relative to piston position,influences both torque and emissions. Torque is necessary to acceleratean engine from cranking speed up to idle speed. Further, low startingemissions are desirable when catalysts are cold and their efficiency islow. In general, advancing spark increases engine torque while retardingspark reduces emissions. Therefore, it is important to provideconsistent well-placed spark timing to ensure engine speed run-up withreduced emissions.

One method to adjust spark while an engine is cold is described in U.S.Pat. No. 6,135,087. This method provides spark advance based on coolanttemperature and engine speed. Further, the amount of spark advanceaccounts for engine position and time from the start-to-run transfer.More particularly, the method initially determines whether the desiredspark advance is before top dead center and whether the throttle isopen. If so, the method uses engine speed and coolant temperature todetermine a spark advance multiplier. Thereafter, the current engineposition pulse is loaded and an engine position multiplier isinterpolated and applied to the spark advance multiplier value. Next,the time since the start-to-run is loaded and a start-to-run multiplieris interpolated and applied to the spark advance multiplier value.Finally, the spark is advanced via the spark advance multiplier value asadjusted by the engine position pulse multiplier and the time sincestart-to-run transfer multiplier. Upon engine operation reaching anafter top dead center condition or when the throttle is closed, themethod is exited and the engine is returned to normal spark control.

The inventors herein have recognized several disadvantages of thisapproach. Namely, the approach changes spark advance based on engineposition, thereby resulting in inconsistent spark placement during theengine start. In other words, when an engine is turned off, it generallystops at a random position. In general, key-off removes power from theengine controller and sensors so that engine position data is lost.Consequently, the engine controller monitors several signals during astart to reestablish engine position. Thus, engine position is changingwhile the engine controller monitors cam and crank signals, attemptingto determine engine position. The number of cylinder events beforeengine position can be established will vary from start to startdepending on where the engine has stopped and on the complexity of theengine position monitoring system.

Therefore, if spark based on position is delivered without regard tosynchronization between the engine controller and the engine, or withoutregard to fuel delivery, the angle at which spark is delivered may varyfrom start to start.

As an example, a fueled cylinder receiving spark may receive spark at anangle intended for the next or prior fueled cylinder. As such, engineposition based spark as presented in the prior art, may deliver lessthan optimal spark.

Furthermore, the method functions only when base spark advance is aftertop dead center (ATDC) and if the throttle is open. Therefore, theabove-mentioned approach does not optimally deliver spark during startwhere the throttle is closed and retarded spark is used to loweremissions.

Another method to adjust spark when and engine is cold is described inU.S. Pat. No. 5,483,946 owned by the assignee of the present invention.The method describes retarding ignition timing from a nominal valueduring a period following engine start and returning the ignition timingto the nominal value by termination of the period, where the period isbased on time.

The inventors herein have also recognized that while this approach workswell during cold engine operation, it can be inaccurate during startbecause the method adjusts spark in relation to time. Spark based ontime delivers a spark advance that is a function of time since the timeris started. However, there is not a one to one relationship betweenengine position and time due to variability in engine stopping locationas discussed above. Further, engine position is a mechanical dimension;time is a continuum, which lacks spatial dimensions.

SUMMARY OF THE INVENTION

One embodiment of the present invention includes a method that improvesspark placement and consistency during start is presented. The methodcomprises: counting a number of cylinders receiving at least one fuelinjection from a start of an internal combustion engine; and calculatingcylinder spark advance based on said counted number of cylinders. Thismethod can be used to reduce the above-mentioned limitations of theprior art approaches.

By counting the number of cylinders that have received fuel, anddelivering spark based on the cylinder count, the inventors herein haveimproved engine starting. Independent of engine stopping location, thefirst fueled cylinder and subsequent cylinders will receiveconsistent-spark, start after start. For this reason, the enginecontroller can deliver fuel immediately or delayed and still maintaincombustion consistency during a start. This can be used to produce lowemissions and uniform engine speed run-up.

Further, another advantage of the present invention, derived fromcounting fueled cylinders, is that a better match between cylindermixture and spark advance is possible. The inventors herein haverecognized that during a start, changes occur within an engine and itssurroundings. The first few fired cylinders have an air-fuel mixturethat is composed of fresh charge and fuel. In other words, there is verylittle EGR or residuals during the first few combustion events. Afterthe first few cylinders fire and expel their residuals, the residualsaffect air-fuel mixtures in other cylinders. Therefore, the combustionprocess in an engine is not linked to time, but to the number ofcylinders receiving fuel.

Furthermore, since the cylinders receiving fuel have distinctair-fuel-residual mixtures, it is desirable to provide spark suited tothese mixtures. Spark delivery based on the number of fueled cylinderevents allows the engine controller to deliver unique spark angles toindividual cylinders. This allows the engine controller to account forindividual cylinder air-fuel mixture differences.

In addition, fuel composition also affects mixture preparation and mayinfluence engine speed run-up. Fuels containing alcohol provides lessenergy affecting torque and engine speed. If spark is delivered based onengine speed and load, the controller may alter the spark in anundesirable manner. Therefore, spark delivery that solely oradditionally takes into account the counted number of fueled cylinderscan be used to improve spark placement consistency with regard to enginecontrol and combustion mixtures.

The present invention provides a number of advantages. The presentinvention provides the advantage of improved spark control during enginestarting, resulting in lower emissions. This advantage is especiallybeneficial when a catalyst is cold and its efficiency is low. Inaddition, the present invention improves engine speed run-upconsistency. Repeatable engine speed during starting improves ownerconfidence and satisfaction since the engine behaves in a reliable andpredictable manor.

The above advantages and other advantages and features of the presentinvention will be readily apparent from the following detaileddescription of the preferred embodiments when taken in connection withthe accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The advantages described herein will be more fully understood by readingan example of an embodiment in which the invention is used to advantage,referred to herein as the Description of Invention, with reference tothe drawings, wherein:

FIG. 1 is a schematic diagram of an engine wherein the invention is usedto advantage;

FIG. 2 is a high level flow chart describing fueled cylinder event basedspark during a start;

FIG. 3 is a high level flow chart describing synchronized cylinder eventbased spark during a start;

FIG. 4 is a high level flow chart of an alternate method describingfueled cylinder event based spark during a start;

FIG. 5 is a high level flow chart of an alternate method describingsynchronized cylinder event based spark during a start;

FIG. 6 is a plot showing an example of conventional time based spark andthe hydrocarbon emissions produced during a start;

FIG. 7 is a plot showing fueled cylinder event based spark and thehydrocarbon emissions produced during a start;

FIG. 8 is a table of example spark delivered during a start;

FIG. 9 is a high level flow chart describing sequential fuel control(SEFI); and

FIG. 10 is a high level flow chart describing Big-Bang fueling.

DESCRIPTION OF INVENTION

Referring to FIG. 1, internal combustion engine 10, comprising aplurality of cylinders, one cylinder of which is shown in FIG. 1, iscontrolled by electronic engine controller 12. Engine 10 includescombustion chamber 30 and cylinder walls 32 with camshaft 130 and piston36 positioned therein and connected to crankshaft 40. Combustion chamber30 is known communicating with intake manifold 44 and exhaust manifold48 via respective intake valve 52 an exhaust valve 54. Intake manifold44 is also shown having fuel injector 66 coupled thereto for deliveringliquid fuel in proportion to the pulse width of signal FPW fromcontroller 12. Fuel is delivered to fuel injector 66 by fuel system (notshown) including a fuel tank, fuel pump, and fuel rail (not shown).Alternatively, the engine may be configured such that the fuel isinjected directly into the combustion chamber, which is known to thoseskilled in the art as direct injection. Intake manifold 44 is showncommunicating with throttle body 58 via throttle plate 62.

Conventional distributorless ignition system 88 provides ignition sparkto combustion chamber 30 via spark plug 92 in response to controller 12.Two-state exhaust gas oxygen sensor 76 is shown coupled to exhaustmanifold 48 upstream of catalytic converter 70. Two-state exhaust gasoxygen sensor 98 is shown coupled to exhaust manifold 48 downstream ofcatalytic converter 70. Sensor 76 provides signal EGO1 to controller 12.Alternatively, a Universal Exhaust Gas Oxygen sensor may be used forsensor 98.

Controller 12 is shown in FIG. 1 as a conventional microcomputerincluding: microprocessor unit 102, input/output ports 104, andread-only memory 106, random access memory 108, and a conventional databus. Controller 12 is shown receiving various signals from sensorscoupled to engine 10, in addition to those signals previously discussed,including: engine coolant temperature (ECT) from temperature sensor 112coupled to cooling sleeve 114; a measurement of manifold absolutepressure (MAP) form pressure sensor 122 coupled to intake manifold 44; ameasurement (ACT) of engine air amount temperature or manifoldtemperature from temperature sensor 117; a cam position signal (CAM)from cam sensor 150; and a profile ignition pickup signal (PIP) from aHall effect sensor 118 coupled to a crankshaft 40, and an engine speedsignal (RPM) from engine speed sensor 119. In a preferred aspect of thepresent invention, engine speed sensor 119 produces a predeterminednumber of equally spaced pulses every revolution of the crankshaft.

Referring to FIG. 2, a flowchart of a routine performed by controller 12when spark based on the number of fueled cylinder events is desired. Theperiod of the cylinder event signal in degrees is: 720/number of enginecylinders. The cylinder event signal identifies when a given enginecylinder reaches top-dead-center of compression stroke.

In step 210, engine operating conditions are read. Operating conditionsare determined by measuring engine coolant temperature, engine airtemperature, barometric pressure, catalyst temperature, time sinceengine last operated (soak time), and parameters alike. These parametersare used to compensate the engine spark angle request in steps 216 and218. The parameters influence engine operation in different waysdepending on their state. For example, lower catalyst temperaturesproduce spark angle retard, but higher catalyst temperatures advancespark angle.

In step 212, the routine decides to proceed based on whether the engineis rotating. If the engine is not rotating, the routine waits until thecrank position sensor 118 detects engine rotation. If the engine isrotating, the routine proceeds to step 214. In step 214, the controllerdetermines if a fueled cylinder event has occurred. If so, the fueledcylinder event counter is incremented and the routine proceeds to step216. If no newly fueled cylinders have occurred, the routine waits untila fueled cylinder event is observed.

In step 216, the desired spark request is looked up from the table inFIG. 8, FNESPK. The spark values in the table will depend on how theengine is being controlled. Some applications will prefer a leancylinder air-fuel mixture promoting port oxidation, while otherapplications will prefer a rich air-fuel mixture with air injected intothe exhaust manifold. Because the in-cylinder mixtures are different,their spark requirements are also different, prompting differences inthe FNESPK table based on the application. FIG. 8 is an example of sparkdemand for lean in cylinder air-fuel mixtures.

After the desired spark is determined, the routine advances to step 218.In step 218, the spark may be modified depending on engine operatingconditions observed in step 210. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark while negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature by functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark demand that is used to modify the spark angle from step 216. Theroutine then proceeds to step 220 where compensation for operator inputis provided. Operator input may take a number of forms including but notlimited to: changing throttle position, load request via electronicthrottle or electronically controlled valves, torque request, airconditioning, or any device or system that increases load on the engine.In this example, operator input is throttle position. If the operatorinputs a demand to the throttle, the throttle signal is processedthrough the function FNTHROTTLE. The function has x dimensions ofthrottle position with units of volts and y dimensions of change (Δ) inspark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 222where the desired spark angle is delivered to the engine.

The routine then proceeds to step 224 where the decision is made tocontinue delivering spark based on the number of fueled cylinder eventsor exit to another method of spark control, e.g., independent of thenumber of fueled cylinder events. If the current number of fueledcylinder events is not less than the calibration parameter EVT_LIM, thenthe routine proceeds to step 214. If the number of fueled cylinderevents is greater than or equal to EVT_LIM, the routine proceeds to step226. In step 226, a transition is made from fueled cylinder event basedspark to another method of spark control. For example, time based sparkcontrol, where a timer is started after the last fueled cylinder eventbased spark is delivered and then spark is delivered as a function oftime.

Alternatively, the routine may be designed to transition to speed/loadbased spark. However, care should be exercised in the transition sincespark based on engine speed/load can be influenced by barometricpressure during starting because there is less oxygen at altitude thanwhen at sea level. Once the transition to the alternate spark controlmethod is complete, the routine is exited.

Referring to FIG. 3, a flowchart of a routine performed by controller 12when spark based on the number of synchronized cylinder events isdesired. Synchronization occurs when engine timing is aligned withengine controller operation. In step 310, engine operating conditionsare read. Operating conditions are determined by measuring enginecoolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 318 and 320. The parameters influenceengine operation in different ways depending on their state. Forexample, lower catalyst temperatures produce spark angle retard, buthigher catalyst temperatures advance spark angle.

In step 312, the routine decides to proceed based on whether the engineis rotating. If the engine is not rotating, the routine waits until thecrank position sensor 118 detects engine rotation. If the engine isrotating, the routine proceeds to step 314. In step 314, the controllerdetermines if a synchronized cylinder event has occurred, if so, thesynchronized cylinder event counter increments and the routine continueson to step 316. If no new synchronized cylinder events have occurred,the routine waits until a synchronized cylinder event is observed.

Engine and controller synchronization is determined in step 316. If thecontroller observes cam and crank signals that allow determination ofengine position, the engine controller aligns operations to enginetiming, becoming synchronized. Upon synchronization the event counter isset to zero and the routine continues to step 318. If the engine and thecontroller are already synchronized, the routine again proceeds to step318. If synchronization is not established and if synchronization cannotbe established, the routine returns to step 314.

In step 318, the desired spark request is looked-up from the tablesimilar to the table in FIG. 8, FNESPK. However, spark values used bystep 318 are based on cylinder events after synchronization instead offueled cylinder events as is described by FIG. 8. The spark values inthe table will depend on how the engine is being controlled. Someapplications will prefer a lean cylinder air-fuel mixture promoting portoxidation, while other applications will prefer a rich air-fuel mixturewith air injected into the exhaust manifold. Because the in-cylindermixtures are different, their spark requirements are also different,prompting differences in the FNESPK table based on the application.

After the desired spark is determined, the routine advances to step 320.In step 320, the spark may be modified depending on engine operatingconditions observed in step 310. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark while negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature by functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark demand that is used to modify the spark angle from step 318. Theroutine then proceeds to step 322 where compensation for operator inputis provided. Operator input may take a number of forms including but notlimited to: changing throttle position, load request via electronicthrottle or electronically controlled valves, torque request, airconditioning, or any device or system that increases load on the engine.In this example, operator input is throttle position. If the operatorinputs a demand to the throttle, the throttle signal is processedthrough the function FNTHROTTLE. The function has x dimensions ofthrottle position with units of volts and y dimensions of change (Δ) inspark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 324where the desired spark angle is delivered to the engine.

The routine then proceeds to step 326 where the decision is made tocontinue delivering spark based on the number of synchronized cylinderevents or exit to another method of spark control, e.g., independent ofthe number of synchronized cylinder events. If the current number ofsynchronized cylinder events is not less than the calibration parameterEVT_LIM, then the routine proceeds to step 314. If the number ofsynchronized cylinder events is greater than or equal to EVT_LIM, theroutine proceeds to step 328. In step 328, a transition is made fromsynchronized cylinder event based spark to another method of sparkcontrol. For example, time based spark control, where a timer is startedafter the last synchronized cylinder event based spark is delivered andthen spark is delivered as a function of time.

Alternatively, the routine may be designed to transition to speed/loadbased spark. However, care should be exercised in the transition sincespark based on engine speed/load can be influenced by barometricpressure during starting because there is less oxygen at altitude thanwhen at sea level. Once the transition to the alternate spark controlmethod is complete, the routine is exited.

Referring to FIG. 4, a flowchart of an alternate embodiment of fueledcylinder event based spark control. In step 410, engine operatingconditions are read. Operating conditions are determined by measuringengine coolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 418 and 420. In step 412, the routinedetermines if the engine is rotating. If not, the routine waits untilrotation is detected. If rotation is detected, the routine continues onto steps 414 and 424. The final spark demand is the sum of twooperations that take separate paths in the figure.

The left path begins at step 414, where controller 12 decides to deliverspark based on fueled cylinder events. If the current number of fueledcylinder events is less than the calibration parameter EVT_LIM, then theroutine proceeds to step 416. If the number of events is greater than orequal to EVT_LIM, the routine proceeds to step 426. In step 416, thecontroller determines if a fueled cylinder event has occurred. If so,the fueled cylinder event counter is incremented and the routineproceeds to step 418. If no newly fueled cylinder events have occurred,the routine retains the last fueled cylinder event spark value andproceeds to step 426.

In step 418, the desired spark request is looked-up from the table inFIG. 8, FNESPK. After the desired spark is determined, the routineadvances to step 420.

In step 420, the spark may be modified depending on engine operatingconditions observed in step 410. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark and negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature in functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark that is used to modify the spark angle from step 418. The routinethen proceeds to step 422 where compensation for operator input isprovided. Operator input may take a number of forms including; changingthrottle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 426.

The right path of the routine begins at step 424, where spark based onoperating parameters is determined by any suitable method. The routinethen continues on to step 426. In step 426, spark angles from steps 422and 424 are summed together to create final spark. The structure andcalibration of this routine allows spark control to be based solely onfueled cylinder event number, or an alternative method independent offueled cylinder event number (e.g., based on time, or speed and load),or any combination of the two depending on the calibration. The routinethen proceeds to step 428, where spark is delivered to the engine. Afterspark is delivered to the engine the routine is exited until calledagain.

Referring to FIG. 5, a flowchart of an alternate embodiment ofsynchronized cylinder event based spark control. In step 510, engineoperating conditions are read. Operating conditions are determined bymeasuring engine coolant temperature, engine air temperature, barometricpressure, catalyst temperature, time since engine last operated (soaktime), and parameters alike. These parameters are used to compensate theengine spark angle request in steps 520 and 522. In step 512, theroutine determines if the engine is rotating. If not, the routine waitsuntil rotation is detected. If rotation is detected, the routinecontinues on to steps 514 and 526. The final spark demand is the sum oftwo operations that take separate paths in the figure.

The left path begins at step 514, where controller 12 decides to deliverspark based on synchronized cylinder events. If the current number ofsynchronized cylinder events is less than the calibration parameterEVT_LIM, then the routine proceeds to step 516. If the number of eventsis greater than or equal to EVT_LIM, the routine proceeds to step 528.In step 516, the controller determines if a synchronized cylinder eventhas occurred. If so, the synchronized cylinder event counter isincremented and the routine proceeds to step 518. If no newlysynchronized cylinder events have occurred, the routine retains the lastsynchronized cylinder event spark value and proceeds to step 528.

Engine and controller synchronization is determined in step 518. If thecontroller observes cam and crank signals that allow determination ofengine position, the engine controller operations and engine timingalign, becoming synchronized. Upon synchronization the event counter isset to zero and the routine continues to step 520. If the engine and thecontroller are already synchronized, the routine again proceeds to step520. If synchronization is not established and if synchronization cannotbe established, the routine returns to step 528.

In step 520, the desired spark request is looked-up from a table similarto the table in FIG. 8, FNESPK. However, spark values used in step 520are based on cylinder events after synchronization instead of fueledcylinder events as described by FIG. 8. After the desired spark isdetermined, the routine advances to step 522.

In step 522, the spark may be modified depending on engine operatingconditions observed in step 510. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark and negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature in functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark that is used to modify the spark angle from step 520. The routinethen proceeds to step 524 where compensation for operator input isprovided. Operator input may take a number of forms including; changingthrottle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 528.

The right path of the routine begins at step 526, where spark based onoperating parameters is determined by any suitable method. The routinethen continues on to step 528. In step 528, spark angles from steps 524and 526 are summed together to create final spark. The structure andcalibration of this routine allows spark control to be based solely onsynchronized cylinder event number, or an alternative method independentof synchronized cylinder event number (e.g., based on time, or speed andload), or any combination of the two depending on the calibration. Theroutine then proceeds to step 530, where spark is delivered to theengine. After spark is delivered to the engine the routine is exiteduntil called again.

Referring to FIG. 6, a plot showing parameters of interest during astart where conventional time based spark is used. Signal magnitudeshave been normalized so that the trajectories can be viewed together.FIGS. 6 and 7 are scaled equally to allow objective comparison of thetwo methods.

Engine speed (RPM), Hydrocarbons (HCPPM), time since start (ATMR1), andspark (SAF) are plotted to show typical signal trajectories during acold start. Notice the relationship between the signals. Spark is heldconstant until a predetermined engine speed is observed, then it followsa trajectory described by a table or function. The delivered spark isnot correlated to cylinder events. The approach results in higherhydrocarbon emissions since individual events are not controlled. Notethat signal ATMR1 increases linearly and is independent of engine speedor number of fueled or unfueled cylinder events.

Referring to FIG. 7, a plot showing the same parameters as FIG. 6, butwhere fueled cylinder event based spark is used according to oneembodiment of the present invention. Signal magnitudes have beennormalized so that the trajectories of signals can be viewed together.

Engine speed (RPM), hydrocarbons (HCPPM), number of fueled cylinderevents (EVTCNT), and spark (SAFTOT) are plotted to show typical signaltrajectories during a start. Notice the relationship between thesignals, spark is allowed to change based on fueled cylinder eventnumber. The spark follows a trajectory described by a table FNESPK. Thedelivered spark is linked to a specific synchronized cylinder eventwhich results in reduced HC emissions while producing sufficient torqueto run the engine speed up to idle.

Referring to FIG. 8, a table FNESPK, showing example spark desired basedon engine coolant temperature and fueled cylinder event number. Thetable is used to determine the spark to be delivered to a specificfueled cylinder event. The table has x dimensions of engine temperature,in degrees Fahrenheit, and y dimensions of fueled cylinder event number.Typically, table columns and rows are defined by the resolution neededto support the combustion process. In general, enough rows are providedto control individual cylinder events over the first two engine cycles,plus a few additional rows. The additional rows are used to define sparkover a number of fueled cylinder events, reflecting stabilization in thecombustion process as the number of fueled cylinder events increases.Negative values in the table refer to ignition anglesafter-top-dead-center of the compression stroke, while positive valuesrefer to angles before-top-dead center of compression of the compressionstroke.

Regarding, the shape of the columns, spark is delivered at a constantengine temperature over a number of cylinder events. A retarded sparkangle is requested in the first two rows, and then the spark angleincreases. This spark profile recognizes the changing requirements ofspark during a start. The first two cylinder events can tolerate morespark retard because the cylinder charge is nearly free of residualgasses. The next few events request increased spark, to support enginespeed run-up and combustion as residuals increase.

Referring to FIG. 9, a flowchart of a routine performed by controller 12to control fueling based on a sequential strategy is shown. Sequentialfueling strategies deliver unique fuel amounts to each cylinder based onthe corresponding air charge of the cylinder. Fuel may be delivered on aopen or close intake valves. By matching individual fuel amounts withindividual air amounts, sequential fueling strategies offer theopportunity to improve emissions. Additional emissions reductions can beachieved by matching spark to individual cylinder events. Sequentialfuel is delivered after the engine and controller 12 are synchronized.In step 910, engine operating conditions are read. Operating conditionsare determined by measuring engine coolant temperature and parametersalike. These parameters are used to compensate engine fuel amountestimates in step 918. In step 912, the routine decides whether tosynchronize air and fuel delivery, step 914, or to proceed and retrievethe engine air amount in step 916. If the air and fuel have not beensynchronized, the controller 12 aligns the two-event predicted engineair amount with the next cylinder on intake stroke. In step 716, theengine air amount is retrieved from an engine air amount estimationroutine. In step 718, the desired Lambda is retrieved from predeterminedvalues stored in a table. The table has x dimension units of enginecoolant temperature (ECT) and y dimension units of time since start.Lambda is calculated as follows:${{Lambda}(\lambda)} = \frac{\frac{Air}{Fuel}}{\frac{Air}{{Fuel}_{stoichiometry}}}$

In step 920, fuel mass is calculated based on the engine air amount fromstep 916, and the Lambda value retrieved in step 918. Fuel mass iscalculated as follows:${Fuel\_ Mass} = \frac{{Engine\_ Air}{\_ Amount}}{\frac{Air}{{Fuel}_{stoichiometry}} \cdot {Lambda}}$

In step 922, injector pulse width is calculated using a function whoseinput is desired fuel mass and whose output is injector pulse width. Instep 924, the injectors are activated for the duration determined instep 922. This process occurs for every injection event, using cylinderspecific air amounts, producing cylinder specific fueling.

Referring to FIG. 10, a flowchart of a routine performed by controller12 to provide Big-Bang fueling. Big-Bang fueling decreases the time tostart since engine synchronization is not required. Optimal emissionsare not achieved using Big-bang fueling, but emissions can be reducedwhile decreasing starting time when cylinder event based spark isperformed with Big-bang fueling. Emissions reductions are a result ofmatching spark with cylinders that have received the complete injectionamount. In step 1010 engine operating conditions are read. Operatingconditions are determined by measuring engine coolant temperature andparameters alike. These parameters are used to compensate engine fuelamount estimates in step 1014. In step 1012, engine air amount isretrieved from calculations made in step 1012. In step 1014, the desiredLambda is looked-up using the same method used in step 1018. In step1016, the routine determines if the engine is rotating. If so, allinjectors are fired simultaneously in step 1018, where the firstcylinder event is detected. If the engine is not rotating, fuel is notdelivered and the routine waits until rotation is detected. In step1020, the engine controller 12 determines engine position using signalsprovided by crankshaft 118 and camshaft 150 sensors. Once engineposition is determined, predicted engine air amount and fuel deliveryare aligned. Big Bang fueling provides fuel for two engine revolutionsallowing the controller 12 to wait N3 cylinder events, step 1022, beforebeginning SEFI fueling, step 1024. Note that N3 is the number ofcylinders in the engine.

As will be appreciated by one of ordinary skill in the art, the routinesdescribed in FIGS. 2, 3, 7, and 8 may represent one or more of anynumber of processing strategies such as event-driven, interrupt-driven,multi-tasking, multi-threading, and the like. As such, various steps orfunctions illustrated may be performed in the sequence illustrated, inparallel, or in some cases omitted. Likewise, the order of processing isnot necessarily required to achieve the objects, features and advantagesof the invention, but is provided for ease of illustration anddescription. Although not explicitly illustrated, one of ordinary skillin the art will recognize that one or more of the illustrated steps orfunctions may be repeatedly performed depending on the particularstrategy being used.

This concludes the description of the invention. The reading of it bythose skilled in the art would bring to mind many alterations andmodifications without departing from the spirit and the scope of theinvention. For example, I3, I4, I5, V6, V8, V10, and V12 enginesoperating in natural gas, gasoline, or alternative fuel configurationscould use the present invention to advantage. Accordingly, it isintended that the scope of the invention be defined by the followingclaims:

What is claimed is:
 1. A spark ignition controlling method for aninternal combustion engine of a vehicle, comprising: counting a numberof cylinders receiving at least one fuel injection from a start of theinternal combustion engine; and adjusting cylinder spark angle based onsaid counted number of cylinders.
 2. The method as set forth in claim 1wherein said cylinder spark angle is adjusted in accordance with anincrease in the number of fuel injections.
 3. The method as set forth inclaim 1 wherein said cylinder spark angle is further adjusted based onambient air temperature and engine temperature.
 4. The method as setforth in claim 1 wherein said cylinder spark angle is further adjustedbased on barometric pressure.
 5. The method as set forth in claim 1wherein said cylinder spark angle is further adjusted based on catalysttemperature.
 6. The method as set forth in claim 1 wherein said cylinderspark angle is further adjusted based on a duration since said internalcombustion engine last operated.
 7. The method as set forth in claim 1wherein said cylinder spark angle is further adjusted based on airinjected into the exhaust system.
 8. The method as set forth in claim 1wherein said fuel injection is asynchronous of engine timing at leastonce during said start; and injecting fuel synchronous to said enginetiming after said start.
 9. The method as set forth in claim 8 whereinsaid fuel injected produces a lean air-fuel mixture during said start.10. The method as set forth in claim 1 wherein said cylinder spark angleis further adjusted based on operator input.
 11. The method as set forthin claim 10 wherein said operator input request is an operator opening amechanical throttle body.
 12. The method as set forth in claim 10wherein said operator input request is made by the operator acting on adevice of the vehicle.
 13. A spark ignition controlling method for aninternal combustion engine, comprising: counting a number of cylindersreceiving at least one fuel injection from a start of the internalcombustion engine; adjusting a first amount of said cylinder spark anglebased on said counted number of cylinders; adjusting a second amount ofsaid cylinder spark angle independent of said counted number ofcylinders; and delivering spark to the engine based on said first andsecond amount.
 14. A spark ignition controlling method for an internalcombustion engine, comprising: injecting fuel quantities synchronous toengine valve timing; counting a number of cylinders receiving at leastone of said synchronous injected fuel quantities from a start of theinternal combustion engine; and adjusting cylinder spark angle based onsaid counted number of cylinders.
 15. The method as set forth in claim14 wherein said injected fuel produces a lean air-fuel mixture duringsaid engine warm-up.
 16. A spark ignition controlling method for aninternal combustion engine of a vehicle, comprising: counting a numberof cylinders receiving at least one fuel injection from a start of theinternal combustion engine; and adjusting cylinder spark angle based onsaid counted number of cylinders while operator input is substantiallyzero.
 17. The method as set forth in claim 16 wherein said operatorinput request is an operator opening a mechanical throttle body.
 18. Themethod as set forth in claim 16 wherein said operator input request ismade by the operator acting on a device of the vehicle.
 19. A computerreadable storage medium having stored data representing instructionsexecutable by a computer to control a spark ignition internal combustionengine of a vehicle, said storage medium comprising: instructions forcounting a number of cylinders receiving at least one fuel injectionfrom a start of the internal combustion engine; and instructions foradjusting cylinder spark angle based on said counted number ofcylinders.